#include<bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
T = 1;
while(T--){
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; ++i){
cin >> a[i];
}
sort(a.begin(), a.end());
vector<int> f(n + 1, -1e9);
vector<int> ans(n + 1);
f[0] = 0;
for(int i = 1; i <= n; ++i){
if(i >= a[i - 1]){
f[i] = f[i - a[i - 1]] + 1;
ans[f[i] + n - i] = max(ans[f[i] + n - i], i);
}else{
ans[n - a[i - 1] + 1] = max(ans[n - a[i - 1] + 1], i);
}
f[i] = max(f[i], f[i - 1]);
}
for(int i = n - 1; i >= 2; --i){
ans[i] = max(ans[i], ans[i + 1]);
}
int q;
cin >> q;
while(q--){
int k;
cin >> k;
cout << ans[k] << '\n';
}
}
}
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |
1920. Build Array from Permutation | 494. Target Sum |
797. All Paths From Source to Target | 1547B - Alphabetical Strings |
1550A - Find The Array | 118B - Present from Lena |
27A - Next Test | 785. Is Graph Bipartite |
90. Subsets II | 1560A - Dislike of Threes |
36. Valid Sudoku | 557. Reverse Words in a String III |
566. Reshape the Matrix | 167. Two Sum II - Input array is sorted |
387. First Unique Character in a String | 383. Ransom Note |
242. Valid Anagram | 141. Linked List Cycle |
21. Merge Two Sorted Lists | 203. Remove Linked List Elements |
733. Flood Fill | 206. Reverse Linked List |